﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using SSSGame.Physics;

namespace SSSGame.Physics
{
    public class VecteurVitesseAngulaire
    {
        private float _OrientationVecteur { get; set; }
        private float _Omega { get; set; }
        private float _Norme { get; set; }
        private float _VitesseAngulaire { get; set; }

        public VecteurVitesseAngulaire()
        {
            _OrientationVecteur = 0;
            _Omega = 0;
            _Norme = 0;
        }

        public VecteurVitesseAngulaire(float orientationvecteur, float omega, float norme)
        {
            _OrientationVecteur = orientationvecteur;
            _Omega = omega;
            _Norme = norme;
        }

        public float DonnerOrientationVecteur()
        {
            return _OrientationVecteur;
        }

        public float DonnerNorme()
        {
            return _Norme;
        }

        public float DonnerOmega()
        {
            return _Omega;
        }

        public float DonnerVitesseAngulaire()
        {
            return _VitesseAngulaire;
        }

        public static VecteurVitesseAngulaire DonnerNouveauVecteurVitesseAngulaire(int uneOrientation, float DeltaTemps, float omega, float vitesseAngulaire)
        {
            float nouvelangle = omega;

            switch (uneOrientation)
            {
                case Tools.ORIENTATION_RETROGRADE :
                    nouvelangle = Tools.HarmoniserAngle(omega - vitesseAngulaire * DeltaTemps);
                    break;
                case Tools.ORIENTATION_HORAIRE:
                    nouvelangle = Tools.HarmoniserAngle(omega + vitesseAngulaire * DeltaTemps);
                    break;
                default:
                    break;
            }

            return new VecteurVitesseAngulaire(uneOrientation, nouvelangle, vitesseAngulaire);
        }
    }
}
